#!/usr/bin/env python
# -*- coding: UTF-8 -*-
'''
@Project ：图灵学习 
@File    ：19.绑定回调.py
@IDE     ：PyCharm 
@Author  ：ChenLiGao
@Date    ：2024-11-11 09:48
'''
import asyncio


async def send_message(content):
    print("信息内容：",content)
    return f"信息内容返回值：{content}"


loop = asyncio.get_event_loop()
task_list = [loop.create_task(send_message(f"双双胖三斤{i}")) for i in range(5)]

"""
    gather主要用于手机所有任务的返回值，并且将所有任务的返回值存储到一个列表种
    gather返回的列表元素顺序和传递任务的顺序是一致的
"""


# 回调函数必须是一个普通的函数
def callback(task_obj):
    print("任务完成后的返回值是：", task_obj.result())

for task in task_list:
    task.add_done_callback(callback)


result = loop.run_until_complete(asyncio.gather(*task_list))
# print(result)